Framsticks - Assumptions of the model

We tried to make the artificial world similar to ours. When creating it (that lasted more than 7 days), we wanted to support it with all the features which allow the evolution process to be aimed at a direction, so that organisms can - without a purpose - discover new ways of living to survive.

Biological evolution started from simple components. Much time had passed until the first creatures were able to reproduce. In our artificial world we skip this "chemical evolution" stage. We supply our creatures with basic functions: notation of their features in their genotypes, reproduction, and energy management. We also set the rules of organism building. It would be difficult to simulate a world with quarks, atoms or even proteins as its basic elements. There would be too many of them regarding reasonable size of the artificial world and computational requirements. That is why the basic element of our organisms is much bigger - it is a bar (segment, stick, cylinder...). Such an element can be assigned various functions depending on its genetic description: it can be just a stick, or can transmit and process signals and therefore be a part of a "brain", or be a receptor, or can have "muscles" and cause moves, or can be specialized in supplying energy.

A group of connected sticks makes up an independent organism. It becomes alive when put into the simulator!

Physical simulation module computes interaction of an organism with the world, analyzes forces influencing particular sticks and computes their new positions. The simulation takes place in a three-dimensional space, and uses finite elements theory and rigid bodies dynamics.

Neural module computes excitations in neural nets, collects data from receptors and sends signals to muscles. Organisms' neuron nets are original because of their free topology and inertia of neurons.

Energetic module analyzes gains and looses of energy. An organism can gain energy by assimilation or absorption of food. The work of muscles and neurons means energy looses. After using up all its energy an organism dies.

Creation module creates new organisms by mutating and crossing over genotypes of the best creatures which have lived so far (ancestors). The user can define fitness criterion (by adjusting weights of elementary criterions, like average velocity and average lifespan), which makes direction of evolution possible.

How the simulator works

The most important data structure in the simulator is the species list. The main task of the simulator is to evaluate species and create new, probably 'better' ones. Every entry of species list represents a group of creatures with the same genotype. Currently, the following attributes are calculated/maintained for each species: The main routine schedules an individual (of some species) to the world simulator in order to test it. After its death the fitness value is calculated (see parameters) and added to the species list.

Tasks performed in each simulation step: